package com.qf.zhijia.controller;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.power.common.util.UUIDUtil;
import com.qf.zhijia.pojo.User;
import com.qf.zhijia.service.UserService;
import com.qf.zhijia.utils.SmsUtils;
import com.qf.zhijia.vo.TableVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.Jedis;

import javax.servlet.http.HttpSession;

/**
 * @author Canaan
 * @version V1.0
 * @data 2020/09/05
 **/
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private Jedis jedis;

    @Autowired
    UserService userService;
    @Autowired
    private TableVo tableVo;
    @Autowired
    private SmsUtils smsUtils;

    @PostMapping("/register")
    public TableVo userLogin(String phone, String code,HttpSession httpSession){
        String s = jedis.get(phone);
        if (s.equals(code)){
            tableVo.setImages(0);
            tableVo.setMessage("登录成功");
            userService.addUser(phone);
            httpSession.setAttribute("phone",phone);
            return tableVo;
        }else {
            tableVo.setImages(1);
            tableVo.setMessage("登录失败");
            return tableVo;
        }
    }

    @GetMapping("/send")
    public TableVo sendCode(String phone){
        smsUtils.setNewcode();
        int newcode = smsUtils.getNewcode();
        String code = Integer.toString(newcode);
        try {
            smsUtils.sendSms(phone, code);
            jedis.set(phone,code);
            jedis.expire(phone,120);
            tableVo.setMessage("验证码发送成功");
            return tableVo;
        } catch (ClientException e) {
            e.printStackTrace();
        }
        tableVo.setMessage("验证码发送失败");
        return tableVo;
    }

}
